package com.cloudfun.campusshare.service;

import com.cloudfun.campusshare.common.model.MerchantAccountDTO;
import com.cloudfun.campusshare.entity.MerchantAccountEntity;

import java.util.List;
import java.util.Optional;

/**
 * Created by CodeGenerator on 2020/08/14
 */
public interface MerchantAccountService {

    /**
     * 创建
     *
     * @param merchantAccountDTO
     */
    void create(MerchantAccountDTO merchantAccountDTO);

    /**
     * 根据用户id查询
     *
     * @param userId
     * @return
     */
    Optional<MerchantAccountEntity> getEntityByUserId(String userId);

    /**
     * 更新可用余额
     *
     * @param userId
     * @param availableBalance 余额增量
     */
    void updateAvailableBalance(String userId, Integer availableBalance);

    /**
     * 更新冻结余额
     *
     * @param userId
     * @param frozenBalance
     */
    void updateFrozenBalance(String userId, Integer frozenBalance);

    /**
     * 获取所有
     *
     * @return
     */
    List<MerchantAccountEntity> getEntities();

    /**
     * 同步账户信息
     */
    void syncAccount();
}